package com.jtny.nytb.equipment.dto.dataparam;

import com.jtny.component.annotation.QueryParamField;
import com.jtny.component.entity.PageParam;
import com.jtny.component.enums.FieldMatchingTypeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;

/**
 * @author 智慧能源中心 - zx
 * @package com.jtny.nytb.energymonitor.equipment.dto
 * @fileName EquipmentDataParamTempDTO.java
 * @createTime 2023年09月18日 23:40
 * @Copyright© 2023 jtny
 * 江投能源技术研究院 版权所有
 */

@ApiModel("设备模型参量信息查询DTO对象")
@Data
@EqualsAndHashCode(callSuper = true)
public class DataParamTempPageQueryParamDTO extends PageParam implements Serializable {

    @ApiModelProperty("数据上报标识查询条件，精确查询")
    @QueryParamField(columnName = "report_identifier", matchingType = FieldMatchingTypeEnum.EQ)
    private String reportIdentifier;

    @ApiModelProperty("统一参量标识查询条件，精确查询")
    @QueryParamField(columnName = "unified_identifier", matchingType = FieldMatchingTypeEnum.EQ)
    private String unifiedIdentifier;

    @ApiModelProperty("计量单位查询条件，精确查询")
    @QueryParamField(columnName = "measurement_unit", matchingType = FieldMatchingTypeEnum.EQ)
    private String measurementUnit;

    @ApiModelProperty("记点频率查询条件，精确查询")
    @QueryParamField(columnName = "frequency", matchingType = FieldMatchingTypeEnum.EQ)
    private Long frequency;

    @ApiModelProperty("记点频率单位查询条件，精确查询")
    @QueryParamField(columnName = "frequency_unit", matchingType = FieldMatchingTypeEnum.EQ)
    private String frequencyUnit;

    @ApiModelProperty("实时量/累计量(0:实时量;1:累计量)查询条件，精确查询")
    @QueryParamField(columnName = "data_type", matchingType = FieldMatchingTypeEnum.EQ)
    private Integer dataType;

    /**
     * 关联类型 1表示 relationId 为规则id， 2表示 relationId 为模型id
     */
    @ApiModelProperty("关联类型 1表示 relationId 为规则id， 2表示 relationId 为模型id查询条件，精确查询")
    @QueryParamField(columnName = "relation_type", matchingType = FieldMatchingTypeEnum.EQ)
    private Integer relationType;

    /**
     * 规则id或模型id
     */
    @ApiModelProperty("规则id或模型id查询条件，精确查询")
    @QueryParamField(columnName = "relation_id", matchingType = FieldMatchingTypeEnum.EQ)
    private Long relationId;


    @ApiModelProperty("记点算法查询条件，精确查询")
    private Long algorithmId;

}
